[% setvar title The Perl 6 Summary for the fortnight ending 2004-08-20 %]
<div id="archive-notice">
    <h3>This file is part of the Perl 6 Archive</h3>
    <p>To see what is currently happening visit <a href="http://www.perl6.org/">http://www.perl6.org/</a></p>
</div>
<div class='pod'>
<a name='The Perl 6 Summary for the fortnight ending 2004-08-20'></a><h1>The Perl 6 Summary for the fortnight ending 2004-08-20</h1>
<p>Harrumph. Note to self; never miss a week when you could actually have
written the summary. I lulled myself into a false sense of security
with the quiet week for the last summary. The last two weeks have been
rather more busy and I've been away at EuroFoo over the weekend.</p>
<p>So, this fortnight's summary might be a bit sketchy.</p>
<p>We're back with starting with perl6-internals this time as it continues
to comfortably out traffic perl6-language (message count was running
about 3:1 in favour of p6i).</p>
<a name='Register allocation'></a><h2>Register allocation</h2>
<p>Work continued apace on adding a bullet proof failsafe register
spilling algorithm so that Dan's work project could be made to at least
compile. There was much discussion of what was actually causing the
problem and several attempts to fix it. Work is ongoing.</p>
<p>Melvin Smith coined a new acronym: DSWEPIC, which stands for Dan Stop
Writing Evil Pathological Intermediate Code though, as chromatic
pointed out, it's actually Dan's compiler that's generating Evil
Pathological code and Dan claimed that that's because he's writing a
compiler for an Evil Pathological language.</p>
<p><a href='http://groups.google.com/groups?threadm=41133881.5050009@toetsch.at' target='_blank'>groups.google.com</a></p>
<a name='Parrot cvs mirrored with svk'></a><h2>Parrot cvs mirrored with svk</h2>
<p>Chia-liang Kao announced that he (I'm guessing, I'm not very good at
divining the gender of none western names. Sadly 'he' is usually a safe
bet in this field though) was mirroring the Parrot CVS repository in a
Subversion repository for those who didn't like CVS. There was a
certain amount of chuntering but most people seemed pleased by this.</p>
<p><a href='http://groups.google.com/groups?threadm=20040807085230.GA33705@portege.clkao.org' target='_blank'>groups.google.com</a></p>
<a name='The Pie-thon post-mortem'></a><h2>The Pie-thon post-mortem</h2>
<p>Dan posted his notes on the aftermath of the pie-thon push. Next time we
do this, we'll start earlier.</p>
<p><a href='http://groups.google.com/groups?threadm=a0611042dbd3acdf97ef5@' target='_blank'>groups.google.com</a>[172.24.18.98]</p>
<a name='An alternate call scheme'></a><h2>An alternate call scheme</h2>
<p>Dan ruled on Leo's alternate call scheme proposal, but wasn't entirely
comfortable with it. However, he sketched out another idea inspired by
it. Leo didn't sound convinced.</p>
<p><a href='http://groups.google.com/groups?threadm=a06110418bd397f6e35e5@' target='_blank'>groups.google.com</a>[172.24.18.98]</p>
<a name='Source mangling slides'></a><h2>Source mangling slides</h2>
<p>Dan posted a link to an abortive talk on some of the cunning tricks we
do with source mangling in Parrot.</p>
<p><a href='http://groups.google.com/groups?threadm=a06110404bd3d23cf4f7b@' target='_blank'>groups.google.com</a>[10.0.1.3]</p>
<p><a href='http://www.sidhe.org/~dan/presentations/Parrot_Implementation.pdf' target='_blank'>www.sidhe.org</a></p>
<a name='Making NCI work with a nasty library'></a><h2>Making NCI work with a nasty library</h2>
<p>Hildo Biersma is trying to write parrot support for IBM's MQ
library. He had a couple of questions about the best way to go about
it. Leo and chromatic had some suggestions.</p>
<p><a href='http://groups.google.com/groups?threadm=16663.29639.371953.272205@saimq5.ms.com' target='_blank'>groups.google.com</a></p>
<a name='Functions for embedders to override'></a><h2>Functions for embedders to override</h2>
<p>Noting that Ponie was already have problems, Dan outlined those
functions that embedding environments may need to override to get
things working. He asked for help and comments in getting a system in
place to allow overriding functions to be registered in order to give
embedders control over parrot's interface to the real world. This is
something which needs doing sooner rather than later so as to avoid
storing up pain.</p>
<p>This triggered a fairly wide ranging discussion, but progress is being
made.</p>
<p><a href='http://groups.google.com/groups?threadm=a0611040cbd3d4f989298@' target='_blank'>groups.google.com</a>[10.0.1.3]</p>
<a name='What Unicode means to us'></a><h2>What Unicode means to us</h2>
<p>Mmm... Unicode. Dan outlined what need to deal with to do Unicode
sufficiently well. Discussion ensued.</p>
<p><a href='http://groups.google.com/groups?threadm=a0611040ebd3d6a1ac8fe@' target='_blank'>groups.google.com</a>[10.0.1.3]</p>
<a name='Fix generation of src/nci.c to be more efficient'></a><h2>Fix generation of <b><i>src/nci.c</i></b> to be more efficient</h2>
<p>I don't normally point out patches, but Dan's patch to improve the
generation of <b><i>src/nci.c</i></b> spawned a longish thread with commentary from
Nicholas Clark and chromatic.</p>
<p><a href='http://groups.google.com/groups?threadm=rt-3.0.11-31026-93446.17.5789743157492@perl.org' target='_blank'>groups.google.com</a></p>
<a name='A small task for the interested'></a><h2>A small task for the interested</h2>
<p>Dan posted another of his small tasks for the interested (maybe we
should start calling them STFTIs?). This time he's after source tests
to test the embedding interface and some fixing of the auto-prefix
scheme.</p>
<p><a href='http://groups.google.com/groups?threadm=a0611040cbd3da10ca9c3@' target='_blank'>groups.google.com</a>[172.24.18.98]</p>
<a name='The encoding API'></a><h2>The encoding API</h2>
<p>Dan detailed the encoding API, the layer that mediates between Parrot,
which sees strings as a sequence of codepoints and the underlying
buffer full of bytes. Gopal V and Michael Stone had questions and
suggestions.</p>
<p><a href='http://groups.google.com/groups?threadm=a06110400bd3daa20ca5a@' target='_blank'>groups.google.com</a>[172.24.18.98]</p>
<a name='COBOL on Parrot?'></a><h2>COBOL on Parrot?</h2>
<p>Remember Dan pointed everyone at a GPL'd COBOL compiler and suggested
that a Parrot backend would be cool? David Essex (if that's the British
singer from the 70s then I'll be boggling like a good 'un) pointed
everyone at a couple of others. He and Uri Guttman discussed runtime
libraries.</p>
<p><a href='http://groups.google.com/groups?threadm=41182276.2080908@arvotek.net' target='_blank'>groups.google.com</a></p>
<a name='The Perl 6 compiler pumpking'></a><h2>The Perl 6 compiler pumpking</h2>
<p>Patrick Michaud, Perl 6 compiler pumpking, outlined his plan for
getting us to a working Perl 6 compiler.</p>
<p><a href='http://groups.google.com/groups?threadm=20040809192444.GH18480@contra.vosn.net' target='_blank'>groups.google.com</a></p>
<a name='PMC semantics'></a><h2>PMC semantics</h2>
<p>Leo kicked off what looks like being a long running thread when he
opened discussion of the semantics of the various integerish PMCs in
Parrot. Larry and Dan both pitched in with discussion.</p>
<p><a href='http://groups.google.com/groups?threadm=4118B4E9.9070906@toetsch.at' target='_blank'>groups.google.com</a></p>
<a name='Charset API'></a><h2>Charset API</h2>
<p>Dan posted part two of the charset API, which confused me slightly by
arriving on my computer before Part 1.</p>
<p><a href='http://groups.google.com/groups?threadm=a06110410bd4148de4d94@' target='_blank'>groups.google.com</a>[172.24.18.155] -- Part 1</p>
<p><a href='http://groups.google.com/groups?threadm=a06110400bd416568fe25@' target='_blank'>groups.google.com</a>[172.24.10.164] -- Part 2</p>
<a name='Handling block parameters in Ruby'></a><h2>Handling block parameters in Ruby</h2>
<p>Mark Sparshatt asked for advice on how to handle method invocations that
include special block parameters like Ruby's. Leo thought that handling
it in the parser/compiler and simply passing the block in as an extra
parameter was the best way forward. Larry and Dan discussed
complications associated with that idea.</p>
<p><a href='http://groups.google.com/groups?threadm=411A83D9.1060502@yahoo.co.uk' target='_blank'>groups.google.com</a></p>
<a name='Parakeet breaks and recovers'></a><h2>Parakeet breaks and recovers</h2>
<p>Michel Pelletier updated his Parrot distribution and managed to kill
his Parakeet language. Dan and Leo set about trying to track the
underlying bug down. I presume it got fixed because Michel posted a new
version of Parakeet soon after.</p>
<p><a href='http://groups.google.com/groups?threadm=20040813112456.1bc2ec2f.michel@dialnetwork.com' target='_blank'>groups.google.com</a></p>
<p><a href='http://groups.google.com/groups?threadm=20040815133243.20f37973.michel@dialnetwork.com' target='_blank'>groups.google.com</a></p>
<a name='NCI and callback functions'></a><h1>NCI and callback functions</h1>
<p>Stephane Peiry had some problems getting NCI callbacks working with
GTK. He and Leo went tried the debugging by email trick, but with
little joy before the end of the week.</p>
<p><a href='http://groups.google.com/groups?threadm=20040815205143.GA12992@pittypanda' target='_blank'>groups.google.com</a></p>
<a name='TODOs added'></a><h2>TODOs added</h2>
<p>Will Coleda added a vast number of TODO items to Parrot's RT queue.</p>
<p>His TODO about the configuration system sparked a good deal of
discussion. At least one person suggested ditching <code>make</code>, which seems
to be par for the course in these kinds of discussions.</p>
<p><a href='http://www.parrotcode.org/todo.html' target='_blank'>www.parrotcode.org</a></p>
<p><a href='http://groups.google.com/groups?threadm=rt-3.0.11-31138-93745.19.5978270633675@perl.org' target='_blank'>groups.google.com</a></p>
<a name='Popping an empty array'></a><h2>Popping an empty array</h2>
<p>Michel Pelletier wondered how to generate a catchable exception when he
tried to <code>pop</code> from an empty PerlArray. Larry reckoned that, if it's
really a PerlArray it should return an undef containing an unthrown
exception. Which sparked a longish discussion...</p>
<p><a href='http://groups.google.com/groups?threadm=20040816050945.63280604.michel@dialnetwork.com' target='_blank'>groups.google.com</a></p>
<a name='Parrot interfaces'></a><h2>Parrot interfaces</h2>
<p>Noticing that there appeared to be ops for handling interfaces, Michel
Pelletier wondered when we might see an implementation or PDD covering
their semantics. Our resident roles guy, chromatic, pointed out that
Parrot will actually have roles, which can look like interfaces in the
right light and pointed at Apocalypse 12 for more in the way of detail.</p>
<p>Later on, Dan sketched out an initial interface spec. Parrot level
interfaces are very simple indeed.</p>
<p><a href='http://groups.google.com/groups?threadm=20040816113022.2941e76f.michel@dialnetwork.com' target='_blank'>groups.google.com</a></p>
<p><a href='http://groups.google.com/groups?threadm=a06110403bd47c07ce518@' target='_blank'>groups.google.com</a>[10.0.1.2]</p>
<a name='Interpreter permissioning'></a><h2>Interpreter permissioning</h2>
<p>Felix Gallo sought input on the problem of interpreter
permissioning. He got lots.</p>
<p><a href='http://groups.google.com/groups?threadm=20040817161114.GA47639@amse.pair.com' target='_blank'>groups.google.com</a></p>
<a name='What?'></a><h2>What?</h2>
<p>Dan Sugalski is a very, very bad man. Sure, he gets a good deal of
mitigation from Parrot working as well as it does, but... well... Multi
Method Dispatch on return continuations is sick, evil, and a strangely
fascinating idea.</p>
<p><a href='http://groups.google.com/groups?threadm=a06110409bd4815efebe7@' target='_blank'>groups.google.com</a>[172.24.10.164]</p>
<a name='Span praise'></a><h2>Span praise</h2>
<p>Dan's been catching up with his mail and popped his head up to say nice
things about Span, a very pleasant looking OO language based around
Parrot.</p>
<p><a href='http://groups.google.com/groups?threadm=a06110407bd4a7b7edc43@' target='_blank'>groups.google.com</a>[172.24.10.164]</p>
<a name='Incremental garbage collection'></a><h2>Incremental garbage collection</h2>
<p>Leo's working on implementing an incremental garbage collector for
Parrot. The idea behind it is to reduce the amount of time the GC
system spends with the world stopped. The response was generally
positive, with discussion of potential edge cases.</p>
<p><a href='http://groups.google.com/groups?threadm=4126558A.8000803@toetsch.at' target='_blank'>groups.google.com</a></p>
<p><a href='http://groups.google.com/groups?threadm=4125B668.2070400@toetsch.at' target='_blank'>groups.google.com</a></p>
<a name='GC/DOD API'></a><h2>GC/DOD API</h2>
<p>Whee, a subject that's all acronym. That's Garbage Collection/Dead
Object Detection Application Programming Interface for those of you who
are bemused by the alphabet soup.</p>
<p>Dan pointed out that, before we get a fully reworked garbage collection
system in place, it would be a good idea to get the API designed and
documented.</p>
<p><a href='http://groups.google.com/groups?threadm=a0611040dbd4bfbdcca85@' target='_blank'>groups.google.com</a>[10.0.1.2]</p>
<a name='Meanwhile, in perl6-language'></a><h1>Meanwhile, in perl6-language</h1>
<a name='Revision of Apocalypse 12's lookahead notions'></a><h2>Revision of Apocalypse 12's lookahead notions</h2>
<p>Larry posted a a message resolving issues with method lookahead and
adverb parsing. And there was much discussion and clarification. Expect
to see the results in Synopsis 12 when it gets written.</p>
<p><a href='http://groups.google.com/groups?threadm=20040810180759.GA16766@wall.org' target='_blank'>groups.google.com</a></p>
<a name='Handling block parameters in Ruby'></a><h2>Handling block parameters in Ruby</h2>
<p>Matt Diephouse spawned a subthread from the A12 lookahead discussion by
wondering how Perl 6 will handle multiple blocks as arguments. Larry
had some thoughts.</p>
<p><a href='http://groups.google.com/groups?threadm=198c873804081311217628470@mail.gmail.com' target='_blank'>groups.google.com</a></p>
<a name='Precedence table update'></a><h2>Precedence table update</h2>
<p>Larry posted a newly tweaked Perl 6 operator precedence table. If
you're one of those chaps who thinks Perl has too much syntax look away
(or point and laugh depending on your persuasion) now.</p>
<p>Various oversights were quickly spotted and fixed up.</p>
<p><a href='http://groups.google.com/groups?threadm=20040814071716.GB11366@wall.org' target='_blank'>groups.google.com</a></p>
<a name='Synopses drafts'></a><h2>Synopses drafts</h2>
<p>Larry posted the first draft of Synopses 1, 2 and 4 the condensed,
updated, versions of their respective apocalypses. The list did the
usual proofreading/patching thing.</p>
<p><a href='http://groups.google.com/groups?threadm=20040814183225.GB2827@wall.org' target='_blank'>groups.google.com</a></p>
<p><a href='http://groups.google.com/groups?threadm=20040814183149.GA2827@wall.org' target='_blank'>groups.google.com</a></p>
<p><a href='http://groups.google.com/groups?threadm=20040820024536.GA28138@wall.org' target='_blank'>groups.google.com</a></p>
<a name='Return with no expression'></a><h2>Return with no expression</h2>
<p>Matt Diephouse found something surprising in Perl 5's handling of a
return with no arguments and wondered if Perl 6 would magically solve
his problem. Luke thinks it'll do the right thing by making the
right hand side of a <code>=&gt;</code> evaluate in a scalar context.</p>
<p><a href='http://groups.google.com/groups?threadm=198c873804081906351aebc796@mail.gmail.com' target='_blank'>groups.google.com</a></p>
<a name='&lt;-&gt; as -&gt; with automatic is rw'></a><h2><code>&lt;-&gt;</code> as <code>-&gt;</code> with automatic <code>is rw</code></h2>
<p>Juerd scared me by proposing that <code>&lt;-&gt;</code> be the equivalent of <code>-&gt;</code> with an implicit <code>is rw</code>. Larry declared &quot;It's really sick, and
cute, and I love it.&quot; but thought that there might already be too many
ways to declare a sub.</p>
<p><a href='http://groups.google.com/groups?threadm=20040820200702.GK17296@c4.convolution.nl' target='_blank'>groups.google.com</a></p>
<a name='Announcements, Apologies, Acknowledgements'></a><h1>Announcements, Apologies, Acknowledgements</h1>
<p>Phew! I think I got this finished just before 'press' time for
perl.com. Or maybe not.</p>
<p>If you find these summaries useful or enjoyable, please consider
contributing to the Perl Foundation to help support the development of
Perl. You might also like to send feedback or contributions to a
'getting Piers to OSCON 2005' fund to mailto:<a href='mailto:pdcawley@bofh.org.uk'>pdcawley@bofh.org.uk</a></p>
<p><a href='http://donate.perl-foundation.org/' target='_blank'>donate.perl-foundation.org</a> -- The Perl Foundation</p>
<p><a href='http://dev.perl.org/perl6/' target='_blank'>dev.perl.org</a> -- Perl 6 Development site</p>
<p>Oh yes, there's new content on my website for the first time in an
age. Enjoy.</p>
<p><a href='http://www.bofh.org.uk/' target='_blank'>www.bofh.org.uk</a></p>
</div>
